之前介紹的應用程式大多屬於 Web Application,使用者透過網路與這些應用程式進行互動。而接下來要介紹的則是命令行應用程式(Command Line Application),使用者將透過終端機直接與應用程式互動。
當今最知名且廣泛使用的 Command Line Application,非 Git 莫屬。Git 提供了多種強大的指令,供開發者進行版本控制操作。例如,開發者可以使用 git commit 來提交變更,並通過附加 -m
選項來撰寫提交訊息(Commit Message)。此外,使用 --help
可以查閱指令的詳細說明。
本次的範例會模擬 git,簡單的實作 git commit -m 'message'
以及 git commit --help
在 Python 套件中,最知名的命令行應用程式實作工具無疑是 Click,因其簡單易用而廣受歡迎。開發者無需過多設定,即可輕鬆建立基本功能。此外,Click 也支援子命令及選項處理等常見的命令行基本功能。接下來,我將透過範例來進一步介紹 Click 的使用方法。
本次範例使用的是 Click 8.1.7 版本
poetry add click==8.1.7
首先,開發者需要建立 git.py
,並定義一個群組 (group),該群組可以包含多個子命令。例如,在 Git 中,git 群組內有 git add
、git commit
等子命令。這種設計有助於開發者擴充及管理眾多命令。
接著,開發者可以定義一個 commit 子命令,這個命令包含一個選項 -m,讓使用者能夠指定提交訊息。正常來說,當使用 git commit 而未提供 -m 選項來指定提交訊息時,Git 會自動打開一個預設的文字編輯器。為了方便教學範例,這裡將此選項設為必填,透過設定 required=True
來實現,此外,我們也會使用 help='Commit message.'
來說明該選項的作用,這樣使用者在查看幫助訊息時能夠清楚了解該選項的用途。這樣的設計不僅提升了用戶體驗,還能避免因為未提供必要參數而導致的錯誤。
另外值得一提的是註解,良好的註解不僅有助於提升代碼的可讀性,還會自動成為命令的簡介,這使得使用者能夠快速了解各個命令的功能。透過這種方式,使用者可以迅速掌握命令的目的與用途,進而提高整體的使用體驗。
import click
@click.group()
def git():
"""A simple Git simulation using Click."""
pass
@git.command()
@click.option('-m', '--message', required=True, help='Commit message.')
def commit(message):
"""Record changes to the repository."""
click.echo(f'[master (root-commit) 1234567] {message}')
click.echo(' 1 file changed, 1 insertion(+), 0 deletions(-)')
if __name__ == '__main__':
git()
使用者可以執行 poetry run python git.py
即可看到目前的 git 提供了 commit
指令。
使用者可以執行 poetry run python git.py commit --help
即可看到 git commit
的詳細使用說明。
使用者可以執行 poetry run python git.py commit -m 'Test'
即可看到 commit 成功的結果。